package fw.qaz.asmx.reader.adapter;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import java.io.File;
import java.util.List;

import fw.qaz.asmx.reader.R;
import fw.qaz.asmx.reader.adapter.item.BookItem;

public class BookArrayAdapter extends ArrayAdapter<BookItem>
{
    private int resource;

    public BookArrayAdapter(Context context, int resourceId, List<BookItem> objects)
    {
        super(context, resourceId, objects);
        // 记录下来稍后使用
        resource = resourceId;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
        RelativeLayout BookListItem;
        // 获取数据
        BookItem book = getItem(position);
        String bookName = book.getBookName();
        String bookImage = book.getBookImage();

        //Bitmap bitmap = getBitmapFromFile(file);

        // 系统显示列表时，首先实例化一个适配器（这里将实例化自定义的适配器）。
        // 当手动完成适配时，必须手动映射数据，这需要重写getView（）方法。
        // 系统在绘制列表的每一行的时候将调用此方法。
        // getView()有三个参数，
        // position表示将显示的是第几行，
        // covertView是从布局文件中inflate来的布局。
        // 我们用LayoutInflater的方法将定义好的image_item.xml文件提取成View实例用来显示。
        // 然后将xml文件中的各个组件实例化（简单的findViewById()方法）。
        // 这样便可以将数据对应到各个组件上了。
        //
        if (convertView == null)
        {
            BookListItem = new RelativeLayout(getContext());
            LayoutInflater.from(getContext()).inflate(resource, BookListItem, true);
        }
        else
        {
            BookListItem = (RelativeLayout) convertView;
        }

        // 获取控件,填充数据
        //ImageView imageView = (ImageView) BookGroupView.findViewById(R.id.imageView);
        TextView textView = (TextView) BookListItem.findViewById(R.id.textViewBookName);
        ImageView imageView = (ImageView) BookListItem.findViewById(R.id.imageViewBookImage);
        textView.setText(bookName);
        //  Bitmap bm=new Bitmap(R.mipmap.mao);
        imageView.setBackgroundColor(Color.WHITE);
        imageView.setImageResource(R.mipmap.book_icon);
//        寻找最简单的方法
//        imageView.setImageDrawable(
//                ResourcesCompat.getDrawable(getContext().getResources(), R.mipmap.mao, null));
        return BookListItem;
    }

    // 从文件获取Bitmap用于填充----这个看来用不到
    private Bitmap getBitmapFromFile(File file)
    {
        return BitmapFactory.decodeFile(file.getAbsolutePath());
    }
}